技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 12 屆 iThome 鐵人賽
DAY
21
0
Security
資訊安全的美味雜炊
系列 第
21
篇
[Day21] - Crypto 0x1 介紹
12th鐵人賽
halloworld
2020-10-04 15:59:04
993 瀏覽
分享至
Day21 - Crypto 0x1 介紹
前言
今天開始連續五天會以Crypto為主題,從古典密碼學一直寫到現代的密碼學
甚麼是密碼學(Crypto)
根據維基百科的解釋,密碼學幾乎是指加密的演算法,會將普通資訊(明文)轉為難以理解及分析(密文)的資料
又可以以古典與現代密碼學做分類,之後的五天會細節及內容
現代的密碼學幾乎都是基於現在的數學難題,讓想偷密文的駭客難以破密內容
加密/解密 & 編碼 & 雜湊
今天就先觀念釐清一下
這個是初學者最容易搞混的東西,很常會將這三樣東西搞混
加密/解密
首先會產生一組密鑰,就是一把鑰匙(key)
通常就是一組字串,而不同演算法生出key的方式也不一樣
接著可以對一組原文透過key來加密,通常我們會叫他「明文」,加密完的結果就是密文
若要解密時,就需透過那把key作解密,才能看到原本的明文
也就是說,沒有key,你就無法得知原本的訊息
對稱式加密(Symmetric Encryption)
加解密接使用同一把密鑰,雙方是用同一把密鑰
當傳送方傳資料時,使用該把密鑰加密,接收方收到訊息後,用同把密鑰解密
缺點
一旦被中間人攔截密鑰,密文就有機會被駭客破解
常見對稱式加密演算法
AES、ChaCha20、3DES、Salsa20、DES
非對稱式加密(Asymmetric Encryption)
不同於對稱式加密,每個使用者都擁有一組金鑰,包含公鑰(public key)和私鑰(private key),公鑰能夠散布各地,但私鑰必須妥善保存
詳細的原理我們留RSA後面再來提
編碼(encode)
只是將資料透過人們討論的規則,對應到另外一項符號或者數字
編碼的運用範圍也很廣
有包含字串的、音訊的、視訊的...
並不需要密鑰,你只需要知道編碼的規則,人人都可以解碼
常見的字元編碼
base64, ASCII, Unicode, urlencode
ASCII
ASCII編碼只有0~127,因為要留一個位元給檢查碼
example
0
= 48
A
= 65
a
= 97
base64
一個單元8-bits
Base64一單元只有6bits
如果原文不整除3,會出現相對應的
=
詳情原理可以參考:
Base64
雜湊(hash)
將長度不固定的資料,映射到固定長度的字串,一旦資料被座雜湊之後,是
不可逆
的
在帳戶系統當中,通常會將密碼hash後存入資料庫中,
通常
並不會用明文方式直接將密碼存在資料庫
這樣好處是萬一駭客偷走了帳戶系統的資料庫,並不能直接拿到密碼,因為hash是不可逆的
另外,帳戶系統對密碼還會加上salt(亂數),再拿去hash,會相對更安全一些
常見的雜湊方式如
MD5, SHA1, SHA256...
風險
MD5, SHA1已被破解,在網路上甚至有網站能將hash過後的值找出原本明文
ex:
https://www.cmd5.com/
現在建議使用
bcrypt, SHA256, SHA512...等方法
ref
https://medium.com/@RiverChan/%E5%9F%BA%E7%A4%8E%E5%AF%86%E7%A2%BC%E5%AD%B8-%E5%B0%8D%E7%A8%B1%E5%BC%8F%E8%88%87%E9%9D%9E%E5%B0%8D%E7%A8%B1%E5%BC%8F%E5%8A%A0%E5%AF%86%E6%8A%80%E8%A1%93-de25fd5fa537
https://medium.com/d-d-mag/%E7%82%BA%E4%BB%80%E9%BA%BC%E4%BD%A0%E9%9C%80%E8%A6%81%E6%87%82%E4%B8%80%E9%BB%9E%E5%AF%86%E7%A2%BC%E5%AD%B8-709c090452aa
https://zh.wikipedia.org/zh-tw/%E5%AF%86%E7%A2%BC%E5%AD%B8%E4%B8%BB%E9%A1%8C%E5%88%97%E8%A1%A8
https://blog.m157q.tw/posts/2017/12/25/differences-between-encryption-and-hashing/
留言
追蹤
檢舉
上一篇
[Day20] - Rev 0x5 linux逆逆實戰
下一篇
[Day22] - Crypto 0x2 古典
系列文
資訊安全的美味雜炊
共
30
篇
目錄
RSS系列文
訂閱系列文
33
人訂閱
26
[Day26] - kali 0x1 介紹
27
[Day27] - kali 0x2 滲透工具
28
[Day28] - kali 0x3 破密工具
29
[Day29] - kali 0x4 Metasploit
30
[Day30] - 完賽、感想、心得
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22209
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
虛擬機點啟動 卻出現錯誤
PDF影像資料不足
關於pychram 安裝新的anaconda後設定完全亂掉了.求前輩們幫忙查看哪裡設定出錯了.
開啟wifi後在輸入帳密視窗卡住
Outlook 2010 更新到 Outlook 2024 時,行事曆不見了,怎辦?
如何阻止系統再次安裝 KB5048652 更新(或某一個更新)
Outlook 2007 常常無法收寄特定人的信
google擴展,函數無法定義
WINDOWS 10 或以上有沒方法自定義LLDP訊息?
【Glpi】安裝agent時如何直接帶入群組
熱門回答
PDF影像資料不足
關於pychram 安裝新的anaconda後設定完全亂掉了.求前輩們幫忙查看哪裡設定出錯了.
虛擬機點啟動 卻出現錯誤
如何阻止系統再次安裝 KB5048652 更新(或某一個更新)
鐵人賽頒獎典禮
熱門文章
使用LINE發報機房溫度/濕度 過高通知
探索容器資源限制:透過實驗理解 Docker 的 CPU 和記憶體調度 (2)
體驗SQL資料庫Day2:常用資料型態解析和資料操作
體驗SQL資料庫Day1:Table(表)、Row(行)、Column(列)
[一天一學習 直到我完成任務管理系統] Day 2 設定環境
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}